package com.filehandlers;

import com.kernel.Log;
import com.vo.User;
import java.io.FileInputStream;
import java.io.ObjectInputStream;

/**
 *
 * @author Matheus
 */
public class UserLoader implements Loadable 
{   
    /**
     * Padrao Singleton pois nao sera necessario ter mais de um objeto do tipo UserLoader
     */
    private static final UserLoader singleton = new UserLoader();
    
    /**
     * Construtor privado para que nenhuma outra classe possa instanciar a UserLoader
     */
    private UserLoader ()
    {
        
    }
    /**
     * Verifica se a senha passada corresponde a senha do Usuario cadastrado.
     * @param username Login do usuario.
     * @param password Password do usuario.
     * @return true se a senha estiver correta, false caso contrario.
     */
    public static boolean checkUser (String username, String password)
    {
        User target = new User(username, password);
        return  target.getPassword().equals(singleton.loadFile(target.hashCode()+".yea"));
    }
    /**
     * Verifica se o Usuario existe no sistema.
     * @param path Nome do usuario gravado no arquivo do sistema.
     * @return A senha do usuario se for encontrado encontrado.
     */
    @Override
    public String loadFile(String path) 
    {
        try
        {
            ObjectInputStream obj = new ObjectInputStream(new FileInputStream(Loadable.PATH+"/users/"+path));
            return ((User)obj.readObject()).getPassword();
        }
        catch(Exception e)
        {
            System.out.println(e.getMessage());
            Log.sendResponse("Usuario invalido", Log.ERROR_MSG);
        }
       return null;
    }
}
